home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / FixMFMDevice.lha / Source / WriteFile.s < prev   
Encoding:
Text File  |  1996-09-21  |  596 b   |  34 lines

  1. ;* Returns    :- d0 = 0=Success (-1 if failed)
  2.  
  3. WriteFile    Move.l    _DosBase(a5),a6
  4.         Lea    PathNameBuffer(PC),a0
  5.         Move.l    a0,d1
  6.         Lea    OldMFMName(PC),a0
  7.         Move.l    a0,d2
  8.         Call    Rename            ; rename the old bugged device
  9.  
  10.         Move.l    LoadAddr(a5),d2
  11.         Move.l    LoadBufferSize(a5),d3
  12.  
  13.         PushM    d2/d3
  14.         Move.l    #1006,d2        ; Mode R/w
  15.         Lea    PathnameBuffer(PC),a0
  16.         Move.l    a0,d1
  17.         Call    Open
  18.         move.l    d0,d7
  19.         beq.b    .FileError
  20.  
  21.         PopM    d2/d3
  22.         Move.l    d7,d1
  23.         Call    Write
  24.  
  25.         move.l    d7,d1            ; d1=files handle
  26.         Call    Close            ; close output file.
  27.         Moveq.l    #0,d0
  28.         Rts
  29.  
  30. .FileError    Addq.l    #8,sp
  31.         Moveq.l    #-1,d0
  32.  
  33. .UserCancelled    Rts
  34.